#ifndef NOTA_CREDITO_RECIBIDA_H
#define NOTA_CREDITO_RECIBIDA_H
#include <QDjangoModel.h>
#include <Entidades/compra.h>
#include <Entidades/cuentas_por_pagar.h>
#include <QObject>

class Nota_credito_recibida : public QDjangoModel
{
    Q_OBJECT
    Q_PROPERTY(int id_nota_credito READ getId_nota_credito WRITE setId_nota_credito)
    Q_PROPERTY(QString numero_nota_credito READ getNumero_nota_credito WRITE setNumero_nota_credito)
    Q_PROPERTY(Compra *compra READ getCompra WRITE setCompra)
    Q_PROPERTY(double monto_total READ getMonto_total WRITE setMonto_total)
    Q_PROPERTY(int porcentaje_iva READ getPorcentaje_iva WRITE setPorcentaje_iva)
    Q_PROPERTY(double monto_iva READ getMonto_iva WRITE setMonto_iva)
    Q_PROPERTY(QDate fecha_emision READ getFecha_emision WRITE setFecha_emision)
    Q_PROPERTY(QDate fecha_vencimiento READ getFecha_vencimiento WRITE setFecha_vencimiento)
    Q_PROPERTY(bool sigue_vigente READ getSigue_vigente WRITE setSigue_vigente)
    Q_PROPERTY(Cuentas_por_pagar *cuenta_por_pagar READ getCuenta_por_pagar WRITE setCuenta_por_pagar)
    Q_PROPERTY(QString observacion READ getObservacion WRITE setObservacion)
    Q_PROPERTY(QString clasificacion READ getClasificacion WRITE setClasificacion)
    Q_CLASSINFO("id_nota_credito", "primary_key=true")

public:
    explicit Nota_credito_recibida(QObject *parent = 0);

    int getId_nota_credito() const;
    void setId_nota_credito(int value);

    QString getNumero_nota_credito() const;
    void setNumero_nota_credito(const QString &value);

    Cuentas_por_pagar *getCuenta_por_pagar() const;
    void setCuenta_por_pagar(Cuentas_por_pagar *value);

    double getMonto_total() const;
    void setMonto_total(double value);

    int getPorcentaje_iva() const;
    void setPorcentaje_iva(int value);

    double getMonto_iva() const;
    void setMonto_iva(double value);

    QDate getFecha_emision() const;
    void setFecha_emision(const QDate &value);

    QDate getFecha_vencimiento() const;
    void setFecha_vencimiento(const QDate &value);

    bool getSigue_vigente() const;
    void setSigue_vigente(bool value);

    Compra *getCompra() const;
    void setCompra(Compra *value);

    QString getObservacion() const;
    void setObservacion(const QString &value);

    QString getClasificacion() const;
    void setClasificacion(const QString &value);

signals:

public slots:

private:
    int id_nota_credito;
    QString numero_nota_credito;
    //Cuentas_por_pagar *cuenta_por_pagar;
    double monto_total;
    int porcentaje_iva;
    double monto_iva;
    QDate fecha_emision;
    QDate fecha_vencimiento;
    bool sigue_vigente;
    //Compra *compra; //En compra se encuentra el numero de factura.
    //QString numero_factura;
    QString observacion;
    QString clasificacion; //Si es por descuento, por devolucion, o para anular una factura
};

#endif // NOTA_CREDITO_RECIBIDA_H
